In a system that provides software such as ‘Software as a Service’ as a multi-tenant-type service, the same software is customized for each user and the user is provided with this software together with the computer power to execute the software. A system of this kind permits the provision of services for a user whereby computer resources are utilized effectively by virtualizing a computer and storage for providing the computer power.
In a system of this kind, a technology (first technology) for providing a virtual computer for multi-tenant users as one template is known. However, with this technology, there is the problem that the storage use efficiency is poor because of the overlap between the storage areas of the storage used by the common OS and applications (AP).
In contrast, there are also technologies for activating and using an OS or application environment from a common disk image by means of a network boot which utilize Apple's NetBoot or Intel's PXE standards, or the like. However, although these technologies permit low-level configuration modifications such as network address modifications (such as DHCP or Active Directory modifications, for example), there is the problem that it is not possible to deal with either a detailed customization for each end user or differences in configuration or, when the latter can be dealt with, different disk images are required and storage use efficiency is poor.
In addition, in contrast, a technology (second technology) for eliminating file redundancy by using Symantec's VMAS to scan files among virtual computer files and substituting redundant files so that one file is referenced, thereby raising the use efficiency of the storage areas of the storage, is known. However, because a scan must be performed on disk images deployed individually for each virtual computer, there is the problem that the processing load when performing the scanning is high.
Further, because the units of substitution for referencing are file units, in cases where files of a large size such as DBMS files are included in virtual computer files, there is the problem that, even if there were a multiplicity of common data parts in the files, the multiplicity of common data parts lie beyond the scope of the redundancy elimination target and efficient usage of the storage is difficult to achieve. In addition, in cases where software is customized, because the modified content sometimes also relates to common part files, attention is required when modifying the common part files, in other words, there is the problem that modifications cannot be made without care.
On the other hand, if only SI (single instanced) parts are modified when a template is modified, the results are reflected in each virtual computer. However, modification of the common points of the user data parts must be dealt with individually. Moreover, in order to increase the use efficiency of the storage, a scan must be performed and redundancy must be eliminated after dealing with individual modifications.
Furthermore, a technology (third technology) which uses NetApp A-SIS to implement block-level redundancy elimination for the whole file system has been employed. Accordingly, needs for storage use efficiency are met because redundancy elimination can be carried out if blocks have the same at bit level (See NetApp's Technical Report: NetApp A-SIS Deduplication Deployment and Implementation Guide, for example). However, there is the problem that, because this technology is applied to the whole file system, a plurality of separation levels cannot be set and it is not possible to cater to detailed service levels. In addition, where configuration modifications and template updates are concerned, there is the problem that the amount of disk usage increases in cases where individual modifications are carried out. Furthermore, in cases where modifications of the template are reflected, the impact and risk of such modifications when same are made simply at block level are unpredictable in their scope.
As described above, conventional technologies are confronted by a variety of problems. In other words, because the same template is used by the first technology, there is the problem that customizable parts are limited. In addition, with the second technology, in cases where a huge single file exists in which only a small number of parts are different and the remaining parts are common parts, the file cannot be a redundancy elimination target and the efficient capacity savings cannot be implemented. Furthermore, with the third technology, it is difficult to execute efficient update work in a form where shared files are replaced in order to implement single instancing at block level.